/**
 * 判断数据是否为字符串类型
 *
 * @param data 任意数据
 * @returns {data is string} 传入的数据是否为字符串类型
 */
export const isStr = (data: any): data is string => typeof data ==='string'

/**
 * 判断是否为空字符串
 *
 * @param str 需要进行判断的字符串
 * @return {boolean} true: 空字符串，false: 非空字符串
 */
export const isEmpty = (str: string): boolean => str.length === 0

/**
 * 获取字符串在 UTF-8 编码下的字节大小
 *
 * @param str 要获取字节大小的字符串
 * @return {number} 指定字符串在 UTF-8 编码下的字节大小
 */
export const getByteSizeUtf8 = (str: string): number => {
  // 字符串长度小于等于 0，字节大小为 0
  if (str.length <= 0) return 0
  // 可以将字符串采用 UTF-8 编码进行编码的编码器
  const encoder = new TextEncoder();
  // 将字符串编码为 Uint8Array(由8位无符号整数组成的数组) 类型
  const strEncoded = encoder.encode(str);
  return strEncoded.length;
}
